(mapcar '= '(2 3) '(2 3))
(mapcar '= '(2 3) '(2 4))
(mapcar '= '(2 3) '())

; should fail -- mapcar too few args
(mapcar '+)

; should fail -- cons too few args
(mapcar 'cons '(1 2))

; should fail -- cons too many args
(mapcar 'cons '(1 2) '((3) (4)) '(5 6))

(mapcar 'cons '(1 2) '((3) (4)))

; this should fail -- listp takes only one argument
; (actually LL should print errors and return nil)
(mapcar 'listp '( () 3) '(1 2 3 4))

(mapcar 'listp '( () 3) )
(mapcar 'listp '() )
(mapcar 'listp '( (2) () 3 (4 5) ))

(mapcar 'append '( (1) (2) ) '( (3) (4) ) )

(mapcar 'append '( (1) (2) ) '( (3) (4) ) '( (5) (6)) )
(mapcar 'append '( (1) (2) ) '( (3) (4) ) '( (5 6) (7 8)) )

(mapcar 'list '( (1) (2) ) '( (3) (4) ) '( (5 6) (7 8)) )

; following won't work in Common LISP where quote is a special form,
; not a function.  should work fine in LL, though.
(mapcar 'quote '( 1 2 3 4))
(mapcar 'quote '( a b c d))
(mapcar 'quote '( (a b) () (d)))

(mapcar '+ (car (mapcar 'append '( (1) (2) ) '( (3) (4) ) ))
           (car (cdr (mapcar 'append '( (1) (2) ) '( (3) (4) ) ) ) )
)

; check these out :-)
(mapcar 'mapcar '(+ *) '((1 2) (3 4)) '((5 6) (7 8)))

(mapcar 'mapcar '(+ *) '((1 2) (3 4)) '((6) (7) (900)))

(mapcar 'mapcar '(+ * append) '((1 2) (3 4) ((a b) (c d)) )
                              '((5 6) (7 8) ((e f g) (h i)))
)
